/**
 * 已合并到yz.page.js中
 * 初始化分页控件
 */
function initPageTool(option) {
    const pageTool = $("#" + option.ctrlId);
    if (pageTool === undefined) {
        return;
    }
    // 获取参数
    const pageNo = pageTool.attr("page_no") === undefined ? 1 : parseInt(pageTool.attr("page_no"));
    const pageSize = pageTool.attr("page_size") === undefined ? 10 : parseInt(pageTool.attr("page_size"));
    const totalNum = pageTool.attr('total_num') === undefined ? 0 : parseInt(pageTool.attr('total_num'));
    // const formId = pageTool.attr('form_id') === undefined ? 'myForm' : pageTool.attr('form_id');
    //
    const totalPage = Math.ceil(totalNum / pageSize);
    // 加载页面
    let toolHtml = '<a class="page-btn prev_page">上一页</a>';
    for (let i = 1; i <= totalPage; i++) {
        if (i === pageNo) {
            toolHtml += '<a class="page-btn page-curr">' + i + '</a>';
        } else if (i === 1 || (i >= pageNo - 2 && i <= pageNo + 2) || i > totalPage - 1) {
            toolHtml += '<a class="page-btn">' + i + '</a>';
        } else if (!toolHtml.endsWith("•••</span>")) {
            toolHtml += '<span class="page-dot">•••</span>';
        }
    }
    toolHtml += '<a class="page-btn next_page">下一页</a>';
    toolHtml += '<span class="page-text">共 ' + totalPage + ' 页  转到第</span>';
    toolHtml += '<input class="page-input" type="text" value="' + pageNo + '">';
    toolHtml += '<span class="page-text">页</span><button class="page-btn page-btn-goto">确定</button>';
    pageTool.html(toolHtml);
    // 控制上下页
    if (pageNo === 1) {
        pageTool.find('.prev_page').attr('disabled', 'disabled').addClass('page-btn-dis');
    }
    if (pageNo === totalPage) {
        pageTool.find('.next_page').attr('disabled', 'disabled').addClass('page-btn-dis');
    }

    // 监听事件
    pageTool.find('.page-btn').on('click', function () {
        let goPageNo;
        if ($(this).hasClass('page-curr') || $(this).hasClass('page-btn-dis')) {
            return;
        } else if ($(this).hasClass('prev_page')) {
            goPageNo = pageNo - 1;
        } else if ($(this).hasClass('next_page')) {
            goPageNo = pageNo + 1;
        } else if ($(this).hasClass('page-btn-goto')) {
            const num = pageTool.find(".page-input").val();
            if (num === undefined || num === '') {
                console.error("页码不能为空！");
                pageTool.find(".page-input").val(pageNo);
                return;
            }
            goPageNo = parseInt(num);
            if (goPageNo < 1 || goPageNo > totalPage) {
                console.error("页码必须在【" + 1 + "~" + totalPage + "】之间");
                pageTool.find(".page-input").val(pageNo);
                return;
            }
            if (goPageNo === pageNo) {
                return;
            }
        } else {
            goPageNo = parseInt($(this).html());
        }
        // 处理请求数据
        let postData = option.postData === undefined? {}: option.postData;
        postData.pageNo = goPageNo;
        postData.pageSize = pageSize;
        // 发起post请求
        $.post(option.postUrl, postData, function (data) {
            if (option.callBack !== undefined) {
                // 如果有定义callback函数
                option.callBack(data);
            } else if (option.callTable !== undefined && option.columns !== undefined) {
                // 如果有定义tableId，则按默认处理
                let innerHtml = "<tr>"
                $(data.resultList).each(function (index,element) {
                    innerHtml += "<tr>"
                    for (let i = 0; i < option.columns.length; i++) {
                        innerHtml += "<td>" + element[option.columns[i]] + "</td>";
                    }
                    innerHtml += "</tr>"
                });
                $("#" + option.callTable).find("tbody").html(innerHtml);
            } else {
                console.error("未知回调" + data);
            }
            // 刷新控件
            pageTool.attr("page_no", goPageNo);
            initPageTool(option);
        });
        // $("#pageNo").val(goPageNo);
        // $('#' + formId).submit();
    });

}

// initPageTool();
